<?php
    // 命名空间就是包，用来存放项目中的类、函数、常量
    // namespace AA;
    // function add(){
    //     echo "加法";
    // };
    // namespace b;
    // function add(){
    //     echo "两个数相加";
    // };
    // // use AA;
    // \AA\add();
    // \b\add()



    // 多级命名空间
    // namespace AA\bb\cc;
    // function say(){
    //     echo "zw";
    // }
    // class Student{
    //     public $name;
    //     // public $age;
    // }
    
    // class Student{
    //     // public $name;
    //     public $age;
    // }
    // namespace AA\bb\dd;
    // function say(){
    //     echo "fw";
    // }
    // namespace AA\bb;
    // function say(){
    //     echo "yw";
    // }
    // \AA\bb\cc\say();
    // \BB\DD\say();
    // $stu=new \AA\bb\cc\Student();
    // var_dump($stu);

    // 访问空间元素的三种方式
    // 1.完全限定名称访问
    // \AA\bb\cc\say();
    // 2.非限定名称访问
    // say();
    // 3.限定名称访问
    // cc\say();
    // say();

   
    // 完全限定名称访问元素路径太长，。可以将其他空间直接引入到当前空间来
    // use AA\bb\dd;
    // dd\say();
    // use AA\bb\cc;
    // $stu=new cc\Student();
    // var_dump($stu);
    namespace AA\bb\cc;
    function say(){
        echo "zw";
    }
    class Student{
        public $name;
        // public $age;
    }
    
   
    namespace AA\bb\dd;
    function say(){
        echo "fw";
    }
    const PI=3.14;
    class Student{
        // public $name;
        public $age;
        public $sex;
    }
    namespace AA\bb;

    function say(){
        echo "yw";
    }
    // class Student{
    //     // public $name;
    //     public $age;
    //     public $sex;
    // }
    class Car{
        public $name;
    }
    // const PI=3.14;
    // 引入类：use
// use \AA\bb\dd\Student;
// $stu=new Student();
// var_dump($stu);
// $car=new Car();
// 引入常量 use const
use const AA\bb\dd\PI;
echo PI;
?>